(レポート) CMP401: ELBのDeep Diveとベストプラクティス #reinvent
日本にいます西澤です。引き続き、公開された資料を読み漁っています。
ELBのセキュリティ
- SSLセキュリティポリシー
- POODLE対策
- LogJam対策
- Heartbleed対策
- RC4の先行除外
- s2n: 新しいオープンソースTLS実装
- Perfect Forward Secrecy
- 3DS、RC4よりもAES
- CBC+HMACよりもGCM
- レガシークライアントは互換性に問題が発生する可能性あり
- ELBのデフォルトセキュリティーポリシーはバランスが取れている
- アクセスログを取得して分析
- ELBの最新のデフォルトセキュリティポリシーを推奨
- ELBのSSLセキュリティポリシーからRC4が除外されました
- s2n: 新しいオープンソースTLS実装のご紹介
- 【AWS発表】Elastic Load Balancing - Perfect Forward Secrecyのサポートなどセキュリティに関する3つの機能拡張を追加
- Elastic Load Balancing での事前定義された SSL のセキュリティポリシー
ELBのScalability
- 全てのCloudWatchメトリクスをAutoScalingと連動可能
- 13のメトリクスが1分単位で取得可能
- HealtyHostCount
- 正常ホスト数
- AZ別
- Latency
- アクセスログを有効化して個別にテストしてデバッグ可能
- SurgeQueue and spillovers
- バックエンドに送信できなかったリクエストの数を確認
- ELBノードのキューが1024を越えると、503エラーが発生
- アプリケーションのスケールを検討
- アクセスログを活用
- Global scalability
- Route 53のlatency-basedルーティング、Geolocationルーティングを活用
ELBのAvailability(可用性)
- ダウンタイムなしのインスタンス置き換えを実現
- Health checks
- TCP、HTTP
- 頻度、閾値
- ヘルスチェックの深さをよく考える
- Idle timeouts
- 未使用のコネクションをELBが切断
- クライアントもバックエンドも意識
- デフォルト60秒(1〜3600秒で設定可能)
- Amazon Route 53 health checks
- AZ単位でヘルスチェックしてスケール
- 150秒以内にスケール
- 複数AZを跨いだサブネットに配置
- ワイルドカードCNAMまたはALIASレコードをRoute 53で登録
- Cross-zone load balancing
- DNSキャッシングの影響を吸収
- バックエンドインスタンスの使用率不均衡を平準化
- 利用帯域課金はなし
- ELB and DevOps
- CloudFormation、Opsworks、Elastic Beanstalk、EC2 Container Service、Amazon API Gatewayと連携可能
- blue/greenデプロイメント
- immutableデプロイメントをプログラム制御
- Health checks
- [新機能] AWS Elastic Load Balancing(ELB)のタイムアウト値を変更する
- AWS ELBの社内向け構成ガイドを公開してみる 負荷分散編 – Cross-Zone Routingを踏まえて
まとめ
特にアップデートはありませんでしたが、WEBアプリケーションを利用する上で必要不可欠となるELBの機能をしっかり復習する機会となりました。CloudWatch、アクセスログを活用して、最適な設定値を利用できるようにしていきたいですね。